package io.github.talelin.latticy.dto;

import lombok.Data;

import javax.validation.constraints.DecimalMin;
import javax.validation.constraints.NotNull;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.Size;
import java.math.BigDecimal;

/**
 * 用户充值DTO
 * @author talelin
 */
@Data
public class UserRechargeDTO {

    /**
     * 用户ID
     */
    @NotNull(message = "用户ID不能为空")
    private Integer userId;

    /**
     * 充值金额（元）
     */
    @NotNull(message = "充值金额不能为空")
    @DecimalMin(value = "0.01", message = "充值金额必须大于0")
    private BigDecimal rechargeAmount;

    /**
     * 充值类型：manual(手动), auto(自动), refund(退款)
     */
    @NotBlank(message = "充值类型不能为空")
    private String rechargeType;

    /**
     * 支付方式：alipay, wechat, bank, admin
     */
    private String paymentMethod;

    /**
     * 第三方交易ID
     */
    private String transactionId;

    /**
     * 操作员ID
     */
    private Integer operatorId;

    /**
     * 操作员姓名
     */
    private String operatorName;

    /**
     * 备注
     */
    @Size(max = 255, message = "备注长度不能超过255个字符")
    private String remark;
}
